package com.ahui.mallchat.common.chat.service;

import com.ahui.mallchat.common.chat.domain.vo.req.ChatMessageMemberReq;
import com.ahui.mallchat.common.chat.domain.vo.req.GroupAddReq;
import com.ahui.mallchat.common.chat.domain.vo.req.member.MemberAddReq;
import com.ahui.mallchat.common.chat.domain.vo.req.member.MemberDelReq;
import com.ahui.mallchat.common.chat.domain.vo.req.member.MemberReq;
import com.ahui.mallchat.common.chat.domain.vo.resp.ChatMemberListResp;
import com.ahui.mallchat.common.chat.domain.vo.resp.ChatRoomResp;
import com.ahui.mallchat.common.chat.domain.vo.resp.MemberResp;
import com.ahui.mallchat.common.common.domain.vo.req.CursorPageBaseReq;
import com.ahui.mallchat.common.common.domain.vo.resp.CursorPageBaseResp;
import com.ahui.mallchat.common.websocket.domain.vo.resp.ChatMemberResp;

import java.util.List;

/**
 * <p>
 * 房间表 服务类
 * </p>
 *
 * @author ahui
 * @since 2024-07-27
 */
public interface RoomAppService {
    /**
     * 获取会话列表--支持未登录态
     */
    CursorPageBaseResp<ChatRoomResp> getContactPage(CursorPageBaseReq request, Long uid);

    /**
     * 获取群组信息
     */
    MemberResp getGroupDetail(Long uid, long roomId);

    CursorPageBaseResp<ChatMemberResp> getMemberPage(MemberReq request);

    List<ChatMemberListResp> getMemberList(ChatMessageMemberReq request);

    void delMember(Long uid, MemberDelReq request);

    void addMember(Long uid, MemberAddReq request);

    Long addGroup(Long uid, GroupAddReq request);


    ChatRoomResp getContactDetail(Long uid, Long roomId);

    ChatRoomResp getContactDetailByFriend(Long uid, Long friendUid);

}
